#ifndef MYPLAINTEXTEDIT_H
#define MYPLAINTEXTEDIT_H

#include <QPlainTextEdit>
#include <QMouseEvent>
#include <QTextBlock>

class MyPlainTextEdit : public QPlainTextEdit
{
    Q_OBJECT  // 必须添加，支持信号槽
public:
    explicit MyPlainTextEdit(QWidget *parent = nullptr) : QPlainTextEdit(parent) {}

signals:
    // 双击时发送当前行文本（自定义信号）
    void lineDoubleClicked(const QString &lineText);

protected:
    // 重写鼠标双击事件
    void mouseDoubleClickEvent(QMouseEvent *e) override {
        if (e->button() == Qt::LeftButton) {  // 左键双击
            QTextCursor cursor = cursorForPosition(e->pos());  // 获取点击位置的光标
            QString lineText = cursor.block().text();  // 获取当前行文本
            emit lineDoubleClicked(lineText);  // 发送信号
        }
        QPlainTextEdit::mouseDoubleClickEvent(e);  // 保留默认行为
    }
};

#endif // MYPLAINTEXTEDIT_H
